yes (Unix)
yes è un comando Unix che stampa una risposta affermativa, o una stringa di testo definita dall'utente, finché non viene interrotto. Il comando fa parte delle GNU Core Utilities[1], ma non è incluso nella Single UNIX Specification.
Descrizione
[modifica | modifica wikitesto]Il comando yes stampa ripetutamente la lettera "y", o l'eventuale stringa di testo passata come parametro, seguito da un ritorno a capo, finché non viene fermato dall'utente o ucciso in altro modo. Se rediretto su un altro comando continua finché la pipe non viene interrotta (e quindi quando l'esecuzione del programma è completata).
Può anche essere usato per testare il comportamento di un sistema sotto carico, in quanto yes, sui sistemi monoprocessore, usa il 100% della CPU (nei sistemi multiprocessore per ottenere lo stesso risultato è necessario lanciare un processo per ogni CPU).
Uso
[modifica | modifica wikitesto]Alcuni programmi Unix se invocati da riga di comando per procedere chiedono all'utente di rispondere di sì con una y (o di no, con una n).[2] Nel suo uso più classico, yes permette di utilizzare tali programmi in maniera non interattiva, dandogli automaticamente una risposta affermativa (o negativa, usando yes n).
Questo spesso oggi non è più necessario, in quanto molti comandi che richiedono risposte dall'utente prevedono alternativamente un'opzione force (come rm -f)[2] o hanno un'opzione assume-yes (come apt-get -y).
Ad esempio, il seguente comando:
rm -f *.txt
è funzionalmente equivalente a:
yes | rm *.txt
Assieme al comando head, yes può essere usato per generare file voluminosi a scopo di test. Ad esempio, l'esecuzione di:
yes 1234567 | head -1000 > file
produce un file di 1000 righe, ognuna delle quali formata da otto caratteri (1, 2, 3, 4, 5, 6, 7 e un ritorno a capo).
Note
[modifica | modifica wikitesto]- ^ (EN) yes: Print a string until interrupted in info coreutils
- ^ a b (EN) rm su The Single UNIX Specification, Version 2
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Pagina di manuale di yes (versione GNU)
- (EN) Pagina di manuale di yes (versione BSD)